home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / scheme / pseudo-s / pseudo_2.lha / kludge.lisp < prev    next >
Encoding:
Text File  |  1991-06-29  |  1.3 KB  |  39 lines

  1.  
  2. ; Clobber some internal Lucid functions to make Pseudoscheme run
  3. ; better.  This will probably break in some future Lucid release, but
  4. ; it works in 4.0.1 on a sparc.
  5.  
  6. (in-package "SCHI")
  7.  
  8. (defvar *original-top-level-read*
  9.   #'lucid::top-level-read)
  10.  
  11. (defun lucid::top-level-read (&optional (input-stream *debug-io*)
  12.                     (eof-error-p t)
  13.                     eof-value)
  14.   (if (eq *package* scheme-package)
  15.       (let* ((*readtable* scheme-readtable)
  16.          (form (funcall *original-top-level-read*
  17.                 input-stream eof-error-p eof-value)))
  18.     (if (or (keywordp form) (numberp form) (eq form eof-value))
  19.         form
  20.         (setq - `(scheme-form ,form))))
  21.       (funcall *original-top-level-read*
  22.            input-stream eof-error-p eof-value)))
  23.  
  24. (defvar *original-debugger-top-level-read*
  25.   #'lucid::debugger-top-level-read)
  26.  
  27. (defun lucid::debugger-top-level-read (&optional (input-stream *debug-io*)
  28.                          (eof-error-p t)
  29.                          eof-value)
  30.   (if (eq *package* scheme-package)
  31.       (let* ((*readtable* scheme-readtable)
  32.          (form (funcall *original-debugger-top-level-read*
  33.                 input-stream eof-error-p eof-value)))
  34.     (if (or (keywordp form) (numberp form) (eq form eof-value))
  35.         form
  36.         (setq - `(scheme-form ,form))))
  37.       (funcall *original-debugger-top-level-read*
  38.            input-stream eof-error-p eof-value)))
  39.